package com.ip.user.mapper;

import com.ip.user.models.vo.SysGroupPermRelVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户组与权限关系Mapper接口
 */
@Mapper
public interface SysGroupPermRelMapper {
    
    /**
     * 插入用户组与权限关系
     * @param groupPermRelVO 用户组与权限关系VO对象
     * @return 影响行数
     */
    int insertGroupPermRel(SysGroupPermRelVO groupPermRelVO);
    
    /**
     * 根据用户组ID和权限ID查询关系
     * @param groupId 用户组ID
     * @param permId 权限ID
     * @return 用户组与权限关系VO对象
     */
    SysGroupPermRelVO selectGroupPermRel(@Param("groupId") Integer groupId, @Param("permId") Integer permId);
    
    /**
     * 根据用户组ID查询权限关系列表
     * @param groupId 用户组ID
     * @return 用户组与权限关系VO列表
     */
    List<SysGroupPermRelVO> selectGroupPermRelsByGroupId(Integer groupId);
    
    /**
     * 根据权限ID查询用户组关系列表
     * @param permId 权限ID
     * @return 用户组与权限关系VO列表
     */
    List<SysGroupPermRelVO> selectGroupPermRelsByPermId(Integer permId);
    
    /**
     * 删除用户组与权限关系
     * @param relId 关系ID
     * @return 影响行数
     */
    int deleteGroupPermRel(Integer relId);
    
    /**
     * 根据用户组ID和权限ID删除关系
     * @param groupId 用户组ID
     * @param permId 权限ID
     * @return 影响行数
     */
    int deleteGroupPermRelByGroupAndPerm(@Param("groupId") Integer groupId, @Param("permId") Integer permId);
}